! function (e, n) {
    var ex = window.innerWidth;
    if (ex == 0) {
        window.location.reload();
        return false
    };
    function t() {
        var e = window.innerWidth;
        n.documentElement.style.fontSize = e / 750 * 100 + "px"
    }
    var i = "onorientationchange" in e ? "orientationchange" : "resize",
        o = null;
    e.addEventListener(i, function () {
        clearTimeout(o), o = setTimeout(t, 300)
    }, !1), e.addEventListener("pageshow", function (e) {
        e.persisted && (clearTimeout(o), o = setTimeout(t, 300))
    }, !1), t()
}(window, document);
//api.js
(function (window) {
    var u = {};
    var isAndroid = /android/gi.test(navigator.appVersion);
    var uzStorage = function () {
        var ls = window.localStorage;
        if (isAndroid) {
            ls = os.localStorage();
        }
        return ls;
    };
    function parseArguments(url, data, fnSuc, dataType) {
        if (typeof data == "function") {
            dataType = fnSuc;
            fnSuc = data;
            data = undefined;
        }
        if (typeof fnSuc != "function") {
            dataType = fnSuc;
            fnSuc = undefined;
        }
        return {
            url: url,
            data: data,
            fnSuc: fnSuc,
            dataType: dataType
        };
    }
    u.trim = function (str) {
        if (String.prototype.trim) {
            return str == null ? "" : String.prototype.trim.call(str);
        } else {
            return str.replace(/(^\s*)|(\s*$)/g, "");
        }
    };
    u.trimAll = function (str) {
        return str.replace(/\s*/g, "");
    };
    u.isElement = function (obj) {
        return !!(obj && obj.nodeType == 1);
    };
    u.isArray = function (obj) {
        if (Array.isArray) {
            return Array.isArray(obj);
        } else {
            return obj instanceof Array;
        }
    };
    u.isEmptyObject = function (obj) {
        if (JSON.stringify(obj) === "{}") {
            return true;
        }
        return false;
    };
    u.addEvt = function (el, name, fn, useCapture) {
        if (!u.isElement(el)) {
            console.warn(
                "$api.addEvt Function need el param, el param must be DOM Element"
            );
            return;
        }
        useCapture = useCapture || false;
        if (el.addEventListener) {
            el.addEventListener(name, fn, useCapture);
        }
    };
    u.rmEvt = function (el, name, fn, useCapture) {
        if (!u.isElement(el)) {
            console.warn(
                "$api.rmEvt Function need el param, el param must be DOM Element"
            );
            return;
        }
        useCapture = useCapture || false;
        if (el.removeEventListener) {
            el.removeEventListener(name, fn, useCapture);
        }
    };
    u.one = function (el, name, fn, useCapture) {
        if (!u.isElement(el)) {
            console.warn(
                "$api.one Function need el param, el param must be DOM Element"
            );
            return;
        }
        useCapture = useCapture || false;
        var that = this;
        var cb = function () {
            fn && fn();
            that.rmEvt(el, name, cb, useCapture);
        };
        that.addEvt(el, name, cb, useCapture);
    };
    u.dom = function (el, selector) {
        if (arguments.length === 1 && typeof arguments[0] == "string") {
            if (document.querySelector) {
                return document.querySelector(arguments[0]);
            }
        } else if (arguments.length === 2) {
            if (el.querySelector) {
                return el.querySelector(selector);
            }
        }
    };
    u.domAll = function (el, selector) {
        if (arguments.length === 1 && typeof arguments[0] == "string") {
            if (document.querySelectorAll) {
                return document.querySelectorAll(arguments[0]);
            }
        } else if (arguments.length === 2) {
            if (el.querySelectorAll) {
                return el.querySelectorAll(selector);
            }
        }
    };
    u.byId = function (id) {
        return document.getElementById(id);
    };
    u.first = function (el, selector) {
        if (arguments.length === 1) {
            if (!u.isElement(el)) {
                console.warn(
                    "$api.first Function need el param, el param must be DOM Element"
                );
                return;
            }
            return el.children[0];
        }
        if (arguments.length === 2) {
            return this.dom(el, selector + ":first-child");
        }
    };
    u.last = function (el, selector) {
        if (arguments.length === 1) {
            if (!u.isElement(el)) {
                console.warn(
                    "$api.last Function need el param, el param must be DOM Element"
                );
                return;
            }
            var children = el.children;
            return children[children.length - 1];
        }
        if (arguments.length === 2) {
            return this.dom(el, selector + ":last-child");
        }
    };
    u.eq = function (el, index) {
        return this.dom(el, ":nth-child(" + index + ")");
    };
    u.not = function (el, selector) {
        return this.domAll(el, ":not(" + selector + ")");
    };
    u.prev = function (el) {
        if (!u.isElement(el)) {
            console.warn(
                "$api.prev Function need el param, el param must be DOM Element"
            );
            return;
        }
        var node = el.previousSibling;
        if (node.nodeType && node.nodeType === 3) {
            node = node.previousSibling;
            return node;
        }
    };
    u.next = function (el) {
        if (!u.isElement(el)) {
            console.warn(
                "$api.next Function need el param, el param must be DOM Element"
            );
            return;
        }
        var node = el.nextSibling;
        if (node.nodeType && node.nodeType === 3) {
            node = node.nextSibling;
            return node;
        }
    };
    u.closest = function (el, selector) {
        if (!u.isElement(el)) {
            console.warn(
                "$api.closest Function need el param, el param must be DOM Element"
            );
            return;
        }
        var doms, targetDom;
        var isSame = function (doms, el) {
            var i = 0,
                len = doms.length;
            for (i; i < len; i++) {
                if (doms[i].isSameNode(el)) {
                    return doms[i];
                }
            }
            return false;
        };
        var traversal = function (el, selector) {
            doms = u.domAll(el.parentNode, selector);
            targetDom = isSame(doms, el);
            while (!targetDom) {
                el = el.parentNode;
                if (el != null && el.nodeType == el.DOCUMENT_NODE) {
                    return false;
                }
                traversal(el, selector);
            }

            return targetDom;
        };

        return traversal(el, selector);
    };
    u.contains = function (parent, el) {
        var mark = false;
        if (el === parent) {
            mark = true;
            return mark;
        } else {
            do {
                el = el.parentNode;
                if (el === parent) {
                    mark = true;
                    return mark;
                }
            } while (el === document.body || el === document.documentElement);

            return mark;
        }
    };
    u.remove = function (el) {
        if (el && el.parentNode) {
            el.parentNode.removeChild(el);
        }
    };
    u.attr = function (el, name, value) {
        if (!u.isElement(el)) {
            console.warn(
                "$api.attr Function need el param, el param must be DOM Element"
            );
            return;
        }
        if (arguments.length == 2) {
            return el.getAttribute(name);
        } else if (arguments.length == 3) {
            el.setAttribute(name, value);
            return el;
        }
    };
    u.removeAttr = function (el, name) {
        if (!u.isElement(el)) {
            console.warn(
                "$api.removeAttr Function need el param, el param must be DOM Element"
            );
            return;
        }
        if (arguments.length === 2) {
            el.removeAttribute(name);
        }
    };
    u.hasCls = function (el, cls) {
        if (!u.isElement(el)) {
            console.warn(
                "$api.hasCls Function need el param, el param must be DOM Element"
            );
            return;
        }
        if (el.className.indexOf(cls) > -1) {
            return true;
        } else {
            return false;
        }
    };
    u.addCls = function (el, cls) {
        if (!u.isElement(el)) {
            console.warn(
                "$api.addCls Function need el param, el param must be DOM Element"
            );
            return;
        }
        if ("classList" in el) {
            el.classList.add(cls);
        } else {
            var preCls = el.className;
            var newCls = preCls + " " + cls;
            el.className = newCls;
        }
        return el;
    };
    u.removeCls = function (el, cls) {
        if (!u.isElement(el)) {
            console.warn(
                "$api.removeCls Function need el param, el param must be DOM Element"
            );
            return;
        }
        if ("classList" in el) {
            el.classList.remove(cls);
        } else {
            var preCls = el.className;
            var newCls = preCls.replace(cls, "");
            el.className = newCls;
        }
        return el;
    };
    u.toggleCls = function (el, cls) {
        if (!u.isElement(el)) {
            console.warn(
                "$api.toggleCls Function need el param, el param must be DOM Element"
            );
            return;
        }
        if ("classList" in el) {
            el.classList.toggle(cls);
        } else {
            if (u.hasCls(el, cls)) {
                u.removeCls(el, cls);
            } else {
                u.addCls(el, cls);
            }
        }
        return el;
    };
    u.val = function (el, val) {
        if (!u.isElement(el)) {
            console.warn(
                "$api.val Function need el param, el param must be DOM Element"
            );
            return;
        }
        if (arguments.length === 1) {
            switch (el.tagName) {
                case "SELECT":
                    var value = el.options[el.selectedIndex].value;
                    return value;
                    break;
                case "INPUT":
                    return el.value;
                    break;
                case "TEXTAREA":
                    return el.value;
                    break;
            }
        }
        if (arguments.length === 2) {
            switch (el.tagName) {
                case "SELECT":
                    el.options[el.selectedIndex].value = val;
                    return el;
                    break;
                case "INPUT":
                    el.value = val;
                    return el;
                    break;
                case "TEXTAREA":
                    el.value = val;
                    return el;
                    break;
            }
        }
    };
    u.prepend = function (el, html) {
        if (!u.isElement(el)) {
            console.warn(
                "$api.prepend Function need el param, el param must be DOM Element"
            );
            return;
        }
        el.insertAdjacentHTML("afterbegin", html);
        return el;
    };
    u.append = function (el, html) {
        if (!u.isElement(el)) {
            console.warn(
                "$api.append Function need el param, el param must be DOM Element"
            );
            return;
        }
        el.insertAdjacentHTML("beforeend", html);
        return el;
    };
    u.before = function (el, html) {
        if (!u.isElement(el)) {
            console.warn(
                "$api.before Function need el param, el param must be DOM Element"
            );
            return;
        }
        el.insertAdjacentHTML("beforebegin", html);
        return el;
    };
    u.after = function (el, html) {
        if (!u.isElement(el)) {
            console.warn(
                "$api.after Function need el param, el param must be DOM Element"
            );
            return;
        }
        el.insertAdjacentHTML("afterend", html);
        return el;
    };
    u.html = function (el, html) {
        if (!u.isElement(el)) {
            console.warn(
                "$api.html Function need el param, el param must be DOM Element"
            );
            return;
        }
        if (arguments.length === 1) {
            return el.innerHTML;
        } else if (arguments.length === 2) {
            el.innerHTML = html;
            return el;
        }
    };
    u.text = function (el, txt) {
        if (!u.isElement(el)) {
            console.warn(
                "$api.text Function need el param, el param must be DOM Element"
            );
            return;
        }
        if (arguments.length === 1) {
            return el.textContent;
        } else if (arguments.length === 2) {
            el.textContent = txt;
            return el;
        }
    };
    u.offset = function (el) {
        if (!u.isElement(el)) {
            console.warn(
                "$api.offset Function need el param, el param must be DOM Element"
            );
            return;
        }
        var sl = Math.max(
            document.documentElement.scrollLeft,
            document.body.scrollLeft
        );
        var st = Math.max(
            document.documentElement.scrollTop,
            document.body.scrollTop
        );

        var rect = el.getBoundingClientRect();
        return {
            l: rect.left + sl,
            t: rect.top + st,
            w: el.offsetWidth,
            h: el.offsetHeight
        };
    };
    u.css = function (el, css) {
        if (!u.isElement(el)) {
            console.warn(
                "$api.css Function need el param, el param must be DOM Element"
            );
            return;
        }
        if (typeof css == "string" && css.indexOf(":") > 0) {
            el.style && (el.style.cssText += ";" + css);
        }
    };
    u.cssVal = function (el, prop) {
        if (!u.isElement(el)) {
            console.warn(
                "$api.cssVal Function need el param, el param must be DOM Element"
            );
            return;
        }
        if (arguments.length === 2) {
            var computedStyle = window.getComputedStyle(el, null);
            return computedStyle.getPropertyValue(prop);
        }
    };
    u.jsonToStr = function (json) {
        if (typeof json === "object") {
            return JSON && JSON.stringify(json);
        }
    };
    u.strToJson = function (str) {
        if (typeof str === "string") {
            return JSON && JSON.parse(str);
        }
    };
    u.setStorage = function (key, value) {
        if (arguments.length === 2) {
            var v = value;
            if (typeof v == "object") {
                v = JSON.stringify(v);
                v = "obj-" + v;
            } else {
                v = "str-" + v;
            }
            var ls = uzStorage();
            if (ls) {
                ls.setItem(key, v);
            }
        }
    };
    u.getStorage = function (key) {
        var ls = uzStorage();
        if (ls) {
            var v = ls.getItem(key);
            if (!v) {
                return;
            }
            if (v.indexOf("obj-") === 0) {
                v = v.slice(4);
                return JSON.parse(v);
            } else if (v.indexOf("str-") === 0) {
                return v.slice(4);
            }
        }
    };
    u.rmStorage = function (key) {
        var ls = uzStorage();
        if (ls && key) {
            ls.removeItem(key);
        }
    };
    u.clearStorage = function () {
        var ls = uzStorage();
        if (ls) {
            ls.clear();
        }
    };
    u.fixIos7Bar = function (el) {
        return u.fixStatusBar(el);
    };
    u.fixStatusBar = function (el) {
        if (!u.isElement(el)) {
            console.warn(
                "$api.fixStatusBar Function need el param, el param must be DOM Element"
            );
            return 0;
        }
        el.style.paddingTop = api.safeArea.top + "px";
        return el.offsetHeight;
    };
    u.fixTabBar = function (el) {
        if (!u.isElement(el)) {
            console.warn(
                "$api.fixTabBar Function need el param, el param must be DOM Element"
            );
            return 0;
        }
        el.style.paddingBottom = api.safeArea.bottom + "px";
        return el.offsetHeight;
    };
    u.toast = function (title, text, time) {
        var opts = {};
        var show = function (opts, time) {
            api.showProgress(opts);
            setTimeout(function () {
                api.hideProgress();
            }, time);
        };
        if (arguments.length === 1) {
            var time = time || 500;
            if (typeof title === "number") {
                time = title;
            } else {
                opts.title = title + "";
            }
            show(opts, time);
        } else if (arguments.length === 2) {
            var time = time || 500;
            var text = text;
            if (typeof text === "number") {
                var tmp = text;
                time = tmp;
                text = null;
            }
            if (title) {
                opts.title = title;
            }
            if (text) {
                opts.text = text;
            }
            show(opts, time);
        }
        if (title) {
            opts.title = title;
        }
        if (text) {
            opts.text = text;
        }
        time = time || 500;
        show(opts, time);
    };
    u.post = function (/*url,data,fnSuc,dataType*/) {
        var argsToJson = parseArguments.apply(null, arguments);
        var json = {};
        var fnSuc = argsToJson.fnSuc;
        argsToJson.url && (json.url = argsToJson.url);
        argsToJson.data && (json.data = argsToJson.data);
        if (argsToJson.dataType) {
            var type = argsToJson.dataType.toLowerCase();
            if (type == "text" || type == "json") {
                json.dataType = type;
            }
        } else {
            json.dataType = "json";
        }
        json.method = "post";
        api.ajax(json, function (ret, err) {
            if (ret) {
                fnSuc && fnSuc(ret);
            }
        });
    };
    u.get = function (/*url,fnSuc,dataType*/) {
        var argsToJson = parseArguments.apply(null, arguments);
        var json = {};
        var fnSuc = argsToJson.fnSuc;
        argsToJson.url && (json.url = argsToJson.url);
        //argsToJson.data && (json.data = argsToJson.data);
        if (argsToJson.dataType) {
            var type = argsToJson.dataType.toLowerCase();
            if (type == "text" || type == "json") {
                json.dataType = type;
            }
        } else {
            json.dataType = "text";
        }
        json.method = "get";
        api.ajax(json, function (ret, err) {
            if (ret) {
                fnSuc && fnSuc(ret);
            }
        });
    };
    /*end*/
    window.$api = u;
})(window);